1. Field of the Invention
The present invention relates to filtering spread data streams for transmission in a CDMA telecommunication system, and more particularly, to a CDMA transceiver filtering circuits with one-bit multipliers.
2. Description of the Related Art
Wireless and cellular systems, such as wide-band, code-division, multiple-access (WB-CDMA) telecommunication systems, may support increasingly higher data rates for users. FIG. 1 shows a typical transmit portion 100 of a prior art transceiver of a WB-CDMA user channel. A single coded-data channel may comprise a 64 kbps user data stream d(t) that is QPSK modulated into in-phase (I) and quadrature-phase (Q) components. The I and Q components are user streams (e.g., STREAM 1 and STREAM 2) spread in frequency and added to user streams of other spread, coded-data channels (e.g., STREAM 3 through STREAM N) using a complex spreader 104 to form combined spread user streams CI and CQ. For systems in accordance with the WB-CDMA standard, complex spreader 104 may be a 4.096 Mbps or a 3.840 Mbps complex spreader.
The combined spread user streams CI and CQ are filtered with a pair of corresponding root raised cosine (RRC) filters 105a and 105b. The RRC filters 105a and 105b may typically be implemented with a roll-off factor a of 0.22. Implementations employing this value for a set the null-to-null bandwidth of the user channel as 4.997 MHz (4.096 MHzxc3x97(1+xcex1)) or 4.685 MHz (3.840 MHzxc3x97(1+xcex1)). This null-to-null bandwidth fits within the 5 MHz channel allocation of the WB-CDMA standard. The filtered digital data of the combined spread components CI and CQ are converted into corresponding analog signals by a pair of digital-to-analog converters (DACs) 106a and 106b. The analog signals generated by DACs 106a and 106b may be smoothed or otherwise shaped for transmission with corresponding analog filters 107a and 107b. 
Each of the RRC filters 105a and 105b may generally be implemented in the digital domain as a finite impulse response (FIR) filter and the frequency characteristics of the FIR filter may be selected as follows. The frequency domain characteristic constrains the out-of-band emissions by a transceiver transmitting in the forward transmit (Tx) channel. FIG. 2 shows an exemplary spectral mask of the prior art that specifies the emission constraints in the adjacent Tx channel as less than xe2x88x9235 dBc and in the alternate channels (and beyond) as less than xe2x88x9255 dBc. This spectral mask affects parameters such as the number of RRC filter taps and quantization bits required for implementations of the RRC filters 105a and 105b, the resolution and linearity of the DACs 106a and 106b, the corner frequency variation, order/type and linearity of the analog filters 107a and 107b. 
FIG. 3 shows an exemplary error vector magnitude (EVM) defined by drawing the pairs of Iout and Qout vector signals from the analog filters 107a and 107b in a complex plane as vectors. Subtracting the actual Iout and Qout vector signals from the ideal vectors generates the error vector (EV). EVM is the magnitude of EV. For some implementations, the root mean square (RMS) of EVM (EVMrms) is calculated over several different data bits and normalized to the length of the ideal vector. EVMrms may be expressed in percentages, and for one implementation EVMrms is less than 12.5%.
The RRC filters 105a and 105b may be implemented as digital filters with a frequency response determined by, for example, a window-based method. The analytical equation for the impulse response of an ideal RRC filter is selected with an arbitrary roll-off factor, and such impulse response is shown in FIG. 4. The frequency response R(jxcfx89) may be calculated by evaluating the square root of a raised cosine filter. The frequency response R(Uc) is given in equation (1) in which T is the spreading chip interval (244 ns).                               R          ⁡                      (                          j              ⁢                              xe2x80x83                            ⁢              ω                        )                          =                  {                                                    1                                                              0                  ≤                                      "LeftBracketingBar"                    ω                    "RightBracketingBar"                                    ≤                                                                                    (                                                  1                          -                          α                                                )                                            ⁢                      π                                        T                                                                                                                                            cos                    ⁡                                          (                                                                        T                                                      4                            ⁢                            α                                                                          ⁢                                                  (                                                                                    "LeftBracketingBar"                              ω                              "RightBracketingBar"                                                        -                                                                                                                            (                                                                      1                                    -                                    α                                                                    )                                                                ⁢                                π                                                            T                                                                                )                                                                    )                                                        "AutoRightMatch"                                                                                                                                                (                                                  1                          -                          α                                                )                                            ⁢                      π                                        T                                    ≤                                      "LeftBracketingBar"                    ω                    "RightBracketingBar"                                    ≤                                                                                    (                                                  1                          +                          α                                                )                                            ⁢                      π                                        T                                                                                                      0                                                                                  "LeftBracketingBar"                    ω                    "RightBracketingBar"                                    ≥                                                                                    (                                                  1                          +                          α                                                )                                            ⁢                      π                                        T                                                                                "AutoRightMatch"                                    (        1        )            
The inverse Fourier transform of equation (1) is employed to determine the impulse response r(t) of the RRC filter. The impulse response r(t) may be sampled at a rate T/OSR, where OSR is the interpolation factor. The sampled impulse response r(t) may be truncated using a rectangular window based on the desired number of taps for the RRC filter.
FIG. 5 shows an implementation of a baseband transmit portion of a WB-CDMA transceiver such as that shown in FIG. 1. Wide-band data and multiple user data streams are received by the complex spreader 104 as STREAM 1 through STREAM 5. Each of STREAM 1 through STREAM 5 is combined with a separate corresponding spreading code (SPREADING 1 through SPREADING 5). The spread user data streams of the I-channel (and similarly, the Q-channel) are then combined into a single I-channel data stream by summer 502a. Each data stream from combiners 501a-501c has values that are one bit wide, but the output of summer 502a is a sequence of multi-bit values that are L-bits wide (L an integer greater than 1). The output stream from the summer 502a is then filtered using RRC filter 105a. As is known in the art, RRC filter 105a, when implemented as an FIR filter in the digital domain, receives filter tap coefficients that are M bits wide (M an integer greater than 1). The values of the sequence provided to the RRC filter 105a or 105b are multi-bit values, and so the RRC filter 105a or 105b includes multi-bit operations with values of the filter tap coefficients.
A block diagram of an exemplary RRC filter 105a is shown in FIG. 6. The exemplary RRC filter 105a of FIG. 6 may be a 64-tap, 10-bit resolution (coefficient) FIR filter operating (sampling) at 4 times (4xc3x97) the rate of the input data. Each of the taps of the RRC filter 105a uses a multi-bit multiplier that is as wide as the widest binary-valued coefficient or data. As the RRC filter 105a is 4 xc3x97upsampled, one in four taps requires a 10-bit multiplier (the coefficient values for the other three of four taps is zero since zeros are inserted in the data during the upsampling process). Consequently, the exemplary RRC filter 105a employs 16 multipliers for each filter. Multi-bit multipliers each consume considerable integrated circuit area.
The present invention relates to circuits and methods for filtering a plurality of spread user data streams in which the process of filtering employs multiplication of values representing the plurality of spread user data streams, either singly or in combination, with filter coefficients, and the multiplication is a one-bit multiplication operation. In accordance with the present invention, the plurality of spread user data streams are combined, each of the spread user data streams being a sequence of one-bit values; and coefficients representing taps of the filter are applied to each of the plurality of spread user data streams. The coefficients are represented by at least one bit and applied with one-bit multiplication to values of either each or the combined plurality of spread user data streams.
The exemplary embodiments of the present invention described herein employ a filter either with single or multi-bit coefficients, and apply the filter in an operation either before or after the spread data streams are combined. The filter may be a digital filter that i) employs multiplication of two values in which the length of at least one input value is one bit; ii) is preferably implemented with muxs or a simple logic operator; and iii) may employ upsampling and modulation encoding of filter coefficients to reduce the coefficient length to, for example, one bit. For some implementations, filters are employed to filter each spread user stream prior to combining several processed user steams. For other implementations, the multi-bit valued data stream representing the combined user streams is upsampled to form an upsampled data stream of single-bit values, and a filter is then applied to filter the upsampled data stream. Alternatively, implementations may use upsampled filter coefficients that allow for use of the filter with one-bit multiplication for either single- or multi-bit values.